<?php
/**
 * Application model for CakePHP.
 *
 * This file is application-wide model file. You can put all
 * application-wide model-related methods here.
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Model
 * @since         CakePHP(tm) v 0.2.9
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */

App::uses('Model', 'Model');

/**
 * Application model for Cake.
 *
 * Add your application-wide methods in the class below, your models
 * will inherit them.
 *
 * @package       app.Model
 */
class AppModel extends Model {
	function exists($id = null) {
        if ($id === null) {
			$id = $this->getID();
		}

		if ($id === false) {
			return false;
		}

        if (isset($this->primaryKeyArray)) {
        	$conditions = array();
        	
	        foreach ($this->primaryKeyArray as $pk) {
	            if (isset($this->data[$this->alias][$pk]) && $this->data[$this->alias][$pk]) {
	                $conditions[$this->alias.'.'.$pk] = $this->data[$this->alias][$pk];
	            }
	            else {
	                $conditions[$this->alias.'.'.$pk] = 0;
	            }
	        }
		    
	        if (is_array($id)) {
	            $conditions = $id;
	        }

	        $query = array('conditions' => $conditions, 'recursive' => -1, 'callbacks' => false);

	        return (bool) $this->find('count', $query);
	    }
	    else {
    		return parent::exists($id);
	    }
    }    
}
